﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Telerik.Web.UI;
using SMA.GENTEv1;

public partial class Protegidos_Administracao_Cadastros_acContratoVigencia : PageBase
{
    private const int ItemsPerRequest = 10;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            OcultaCampos(true);

            if (Session["WorkFlow"] != null)
            {
                CarregarContratoWF(int.Parse(Request["ContratoWF"].ToString()), rcbContrato);
                Session["WorkFlow"] = null;
            }
        }
    }

    #region Eventos
    protected void btnPesquisar_Click1(object sender, EventArgs e)
    {
        Pesquisa();
        RadGrid1.DataBind();
        OcultaCampos(false);
    }
    protected void btnIncluir_Click(object sender, EventArgs e)
    {
        Server.Transfer("acCadContratoVigencia.aspx");
    }
    protected void btnLimpar_Click(object sender, EventArgs e)
    {

    }
    protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        Pesquisa();
    }
    protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        if (e.CommandName == "Select")
        {

            int idContrato = Int32.Parse(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["IdContrato"].ToString());

            Server.Transfer("acAltContratoVigencia.aspx?idContrato=" + idContrato.ToString());
        }
    }
    protected void rcbContrato_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
    {
        OrganizacaoPatrocinadorPrestador organPatPrest = new OrganizacaoPatrocinadorPrestador();
        int idOrnaRelacao = organPatPrest.RetornaIdRelacao(IdPatrocinador, IdPrestador);

        Contrato contrato = new Contrato();
        List<Contrato> listContratos = contrato.SelectContratoVigenciaCombo(e.Text, idOrnaRelacao);

        int itemOffset = e.NumberOfItems;
        int endOffset = Math.Min(itemOffset + ItemsPerRequest, listContratos.Count);
        e.EndOfItems = endOffset == listContratos.Count;

        for (int i = itemOffset; i < endOffset; i++)
        {
            rcbContrato.Items.Add(new RadComboBoxItem(listContratos[i].Descricao, listContratos[i].IdContrato.ToString()));
        }

        e.Message = GetStatusMessage(endOffset, listContratos.Count);
    }
    #endregion

    #region Metodos
    private void Pesquisa()
    {
        RadGrid1.DataSource = CarregaContrato(rcbContrato.Text);
    }
    public List<Contrato> CarregaContrato(string nome)
    {
        OrganizacaoPatrocinadorPrestador organPatPrest = new OrganizacaoPatrocinadorPrestador();
        int idOrnaRelacao = organPatPrest.RetornaIdRelacao(IdPatrocinador, IdPrestador);

        Contrato contrato = new Contrato();
        List<Contrato> listContrato = contrato.SelectContratoVigencia(nome, idOrnaRelacao);

        return listContrato;
    }
    public void CarregarContratoWF(int _idcontrato, RadComboBox _combo)
    {
        Contrato contrato = new Contrato(_idcontrato);

        _combo.Items.Add(new RadComboBoxItem(contrato.Descricao, contrato.IdContrato.ToString()));
        _combo.SelectedIndex = 0;
    }
    private static string GetStatusMessage(int offset, int total)
    {
        if (total <= 0)
            return "No matches";

        return String.Format("Items <b>1</b>-<b>{0}</b> de <b>{1}</b>", offset, total);
    }
    protected void OcultaCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
    }
    #endregion
    
}
